package com.example.weather

import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement
import javax.inject.Inject

class MyRule @Inject constructor(): TestRule {
    override fun apply(base: Statement, description: Description): Statement {
        return object : Statement() {
            @Throws(Throwable::class)
            override fun evaluate() {
                // 获取测试方法的名字
                val methodName = description.methodName
                // evaluate前执行方法相当于@Before
                println("$methodName 测试开始！")
                // 运行的测试方法
                base.evaluate()

                // evaluate后执行方法相当于@After
                println("$methodName 测试结束！")
            }
        }
    }
}